-- PickitRevolution Gems.lua update by Kel. Last update 7.27.08

table.insert(itemActions,
	function(item, action)
		-- GEMS
		local priority = 3 -- pick priority

		if not isGem(item) then
			return false
		elseif action == aPICK then
			return priority
		end

		return false
	end
)

-- note: make sure that the last line on returns doesn't have a trailing "or"
-- ALWAYS check your edits with a syntax checker like in LuaEdit!
-- Thanks to plusmedic and wreinhardt!

function isGem(item)
	return (
			     isPerfectGem(item)
		      or isFlawlessGem(item)
			--or isNormalGem(item)
			--or isFlawedGem(item)
		    --or isChippedGem(item)
		    --or isCubeGem(item)
			)
end


function isPerfectGem(item)
	return (
			   item.baseItem.code == "gpy" -- Perfect Topaz
			or item.baseItem.code == "gpv" -- Perfect Amethyst
			or item.baseItem.code == "gpb" -- Perfect Sapphire
			or item.baseItem.code == "gpr" -- Perfect Ruby
			or item.baseItem.code == "gpg" -- Perfect Emerald
			or item.baseItem.code == "gpw" -- Perfect Diamond
			or item.baseItem.code == "skz" -- Perfect Skull
			)
end

function isFlawlessGem(item)
	return (
			   item.baseItem.code == "gly" -- Flawless Topaz
			or item.baseItem.code == "gzv" -- Flawless Amethyst
			or item.baseItem.code == "glb" -- Flawless Sapphire
			or item.baseItem.code == "glr" -- Flawless Ruby
			or item.baseItem.code == "glg" -- Flawless Emerald
			or item.baseItem.code == "glw" -- Flawless Diamond
			or item.baseItem.code == "skl" -- Flawless Skull

			)
end

function isNormalGem(item)
	return (
			   item.baseItem.code == "gsy" -- Topaz
			or item.baseItem.code == "gsv" -- Amethyst
			or item.baseItem.code == "gsb" -- Sapphire
			or item.baseItem.code == "gsr" -- Ruby
			or item.baseItem.code == "gsg" -- Emerald
			or item.baseItem.code == "gsw" -- Diamond
	        or item.baseItem.code == "sku" -- Skull
			)
end

function isFlawedGem(item)
	return (
			   item.baseItem.code == "gfy" -- Flawed Topaz
			or item.baseItem.code == "gfv" -- Flawed Amethyst
			or item.baseItem.code == "gfb" -- Flawed Sapphire
			or item.baseItem.code == "gfr" -- Flawed Ruby
			or item.baseItem.code == "gfg" -- Flawed Emerald
			or item.baseItem.code == "gfw" -- Flawed Diamond
		    or item.baseItem.code == "skf" -- Flawed Skull
			)
end

function isChippedGem(item)
	return (
		      item.baseItem.code == "gcy"  -- Chipped Topaz
			or item.baseItem.code == "gcb" -- Chipped Sapphire
			or item.baseItem.code == "gcg" -- Chipped Emerald
			or item.baseItem.code == "gcv" -- Chipped Amethyst
			or item.baseItem.code == "gcr" -- Chipped Ruby
			or item.baseItem.code == "gcw" -- Chipped Diamond
		    or item.baseItem.code == "skc" -- Chipped Skull
			)
end


-- This function lets you pick all gems used to upgrade runes.
-- It's easier than selectively enabling all other gem functions

-- Gems ordered to follow TASRED order which is used for cubing runes.
--TASRED = Topaz, Amethyst, Sapphire, Ruby, Emerald, Diamond

function isCubeGem(item)
	return (
		   	   item.baseItem.code == "gcy" -- Chipped Topaz      Thul
			or item.baseItem.code == "gcb" -- Chipped Sapphire   Amn
			or item.baseItem.code == "gcg" -- Chipped Emerald    Sol
			or item.baseItem.code == "gcv" -- Chipped Amethyst   Shael
			or item.baseItem.code == "gcr" -- Chipped Ruby       Dol
			or item.baseItem.code == "gcw" -- Chipped Diamond    Hel
			or item.baseItem.code == "gfy" -- Flawed Topaz       Io
			or item.baseItem.code == "gfv" -- Flawed Amethyst    Lum
			or item.baseItem.code == "gfb" -- Flawed Sapphire    Ko
			or item.baseItem.code == "gfr" -- Flawed Ruby        Fal
			or item.baseItem.code == "gfg" -- Flawed Emerald     Lem
			or item.baseItem.code == "gfw" -- Flawed Diamond     Pul
			or item.baseItem.code == "gsy" -- Topaz              Um
			or item.baseItem.code == "gsv" -- Amethyst           Mal
			or item.baseItem.code == "gsb" -- Sapphire         	 Ist
			or item.baseItem.code == "gsr" -- Ruby             	 Gul
			or item.baseItem.code == "gsg" -- Emerald            Vex
			or item.baseItem.code == "gsw" -- Diamond            Ohm
			or item.baseItem.code == "gly" -- Flawless Topaz     Lo
			or item.baseItem.code == "gzv" -- Flawless Amethyst  Sur
			or item.baseItem.code == "glb" -- Flawless Sapphire  Ber
			or item.baseItem.code == "glr" -- Flawless Ruby      Jah
			or item.baseItem.code == "glg" -- Flawless Emerald   Cham
			)
end